import request from '@/api/request'

/**
 * 获取简历列表
 * @returns {Promise<object>}
 */
export function getResumeList() {
  return request({
    url: '/resumes',
    method: 'get'
  })
}

/**
 * 获取简历详情
 * @param {number} id - 简历ID
 * @returns {Promise<object>}
 */
export function getResumeDetail(id) {
  return request({
    url: `/resumes/${id}`,
    method: 'get'
  })
}

/**
 * 创建简历
 * @param {object} data - 简历数据
 * @returns {Promise<object>}
 */
export function createResume(data) {
  return request({
    url: '/resumes',
    method: 'post',
    data
  })
}

/**
 * 更新简历
 * @param {number} id - 简历ID
 * @param {object} data - 简历数据
 * @returns {Promise<object>}
 */
export function updateResume(id, data) {
  console.log('[DEBUG] 调用updateResume API:', id);
  console.log('[DEBUG] 更新简历数据:', JSON.stringify(data, null, 2));
  
  // 在控制台中输出HTTP请求细节，帮助调试
  console.log('[DEBUG] 准备发送PUT请求到:', `/resumes/${id}`);
  
  return request({
    url: `/resumes/${id}`,
    method: 'put',
    data
  })
  .then(response => {
    console.log('[DEBUG] 更新简历响应:', JSON.stringify(response, null, 2));
    return response;
  })
  .catch(error => {
    console.error('[DEBUG] 更新简历错误:', error);
    console.log('[DEBUG] 尝试使用原生fetch API作为备用方案');
    
    // 备用方案：使用原生fetch API
    const token = localStorage.getItem('token');
    return fetch(`http://localhost:8080/api/resumes/${id}`, {
      method: 'PUT',
      headers: {
        'Content-Type': 'application/json',
        'Authorization': token ? `Bearer ${token}` : '',
      },
      body: JSON.stringify(data),
      credentials: 'include'
    })
    .then(response => {
      console.log('[DEBUG] Fetch API响应状态:', response.status);
      return response.json();
    })
    .then(jsonData => {
      console.log('[DEBUG] Fetch API响应数据:', jsonData);
      return jsonData;
    })
    .catch(fetchError => {
      console.error('[DEBUG] Fetch API错误:', fetchError);
      throw fetchError;
    });
  });
}

/**
 * 删除简历
 * @param {number} id - 简历ID
 * @returns {Promise<object>}
 */
export function deleteResume(id) {
  return request({
    url: `/resumes/${id}`,
    method: 'delete'
  })
}

/**
 * 设置默认简历
 * @param {number} id - 简历ID
 * @returns {Promise<object>}
 */
export function setDefaultResume(id) {
  return request({
    url: `/resumes/${id}/default`,
    method: 'put'
  })
}

/**
 * 获取简历模板列表
 * @returns {Promise<object>}
 */
export function getResumeTemplates() {
  return request({
    url: '/resume-templates',
    method: 'get'
  })
}

/**
 * 根据模板ID创建简历
 * @param {number} templateId - 模板ID
 * @param {object} data - 基本数据
 * @returns {Promise<object>}
 */
export function createResumeFromTemplate(templateId, data) {
  return request({
    url: `/resume-templates/${templateId}/create`,
    method: 'post',
    data
  })
}